package com.example.forum.dao;

import com.example.forum.model.Board;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface BoardMapper {
    int deleteByPrimaryKey(Long id);

    int insert(Board record);

    int insertSelective(Board record);

    Board selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(Board record);

    int updateByPrimaryKey(Board record);

    List<Board> selectByNum(@Param("num") Integer num);

    /**
     * 查询所有板块
     * @return
     */
    List<Board> selectAll();

    /**
     * 统计总板块数（未删除的）
     * @return 板块总数
     */
    int countTotalBoards();
    
    /**
     * 获取当前最大排序值
     * @return 最大排序值
     */
    Integer getMaxSort();

    /**
     * 获取板块实际文章数量（直接统计）
     * @param boardId 板块ID
     * @return 实际文章数量
     */
    int getActualArticleCount(Long boardId);
}